dados = read_csv(
here::here("data/participation-per-country.csv"),
col_types = cols(
.default = col_double(),
site = col_character(),
country = col_character(),
geo = col_character(),
four_regions = col_character(),
eight_regions = col_character(),
six_regions = col_character(),
`World bank income group 2017` = col_character()
)
) %>%
filter(usuarios > 200)
glimpse(dados)
## Observations: 121
## Variables: 21
## $ site <chr> "StackOverflow", "StackOverflow", "S...
## $ country <chr> "Argentina", "Australia", "Austria",...
## $ PDI <dbl> 49, 36, 11, 80, 65, 69, 70, 39, 63, ...
## $ IDV <dbl> 46, 90, 55, 20, 75, 38, 30, 80, 23, ...
## $ MAS <dbl> 56, 61, 79, 55, 54, 49, 40, 52, 28, ...
## $ UAI <dbl> 86, 51, 70, 60, 94, 76, 85, 48, 86, ...
## $ usuarios <dbl> 2798, 12313, 2518, 2558, 4275, 10717...
## $ responderam_prop <dbl> 0.5357398, 0.6133355, 0.6310564, 0.3...
## $ perguntaram_prop <dbl> 0.5210865, 0.5897832, 0.5933280, 0.4...
## $ editaram_prop <dbl> 0.09256612, 0.14699911, 0.14932486, ...
## $ comentaram_prop <dbl> 0.25339528, 0.33395598, 0.35027800, ...
## $ GNI <dbl> NA, 59570, 48160, 840, 44990, 11630,...
## $ Internet <dbl> 51.0, 79.5, 79.8, 5.0, 78.0, 45.0, 5...
## $ EPI <dbl> 59.02, NA, 63.21, NA, 61.21, 49.96, ...
## $ geo <chr> "arg", "aus", "aut", "bgd", "bel", "...
## $ four_regions <chr> "americas", "asia", "europe", "asia"...
## $ eight_regions <chr> "america_south", "east_asia_pacific"...
## $ six_regions <chr> "america", "east_asia_pacific", "eur...
## $ Latitude <dbl> -34.00000, -25.00000, 47.33333, 24.0...
## $ Longitude <dbl> -64.00000, 135.00000, 13.33333, 90.0...
## $ `World bank income group 2017` <chr> "Upper middle income", "High income"...
Estamos interessados na relação entre quanto as pessoas de diferentes países comentam em questões dos outros. A proporção das pessoas do país que comentou nas questões de outros está medido na variável comentaram_prop.
Considerando essa variável, queremos examinar a relação entre ela e o quão hierárquicas são as relações em um país (PDI). Queremos também levar em conta o quanto as pessoas daquele país têm acesso à Internet (Internet) e qual o tamanho da base de dados que detectamos daquele país (usuarios).
Faça uma visualização que usa os princípios de eficácia no projeto de visualizações para facilitar as comparações que você acha que são as mais importantes para entendermos esse contexto.
Considerando apenas uma visualição, temos:
dados %>%
ggplot(aes(
x = PDI,
y = comentaram_prop,
color = Internet,
size = log10(usuarios)
)) +
geom_point(alpha = .6)
A partir da imagens acima podemos perceber que os países com mais acesso a internet (pontos mais claros) e com uma menor desigualdade social percebida (Menores valores PDI) possuem uma maior proporção de comentários registrados, enquanto países com menos acesso a internet(pontos escuros) e com maiores valores de PDI registraram uma menor proporção de comentários. Em relação aos quantidade de usuários, não é possível perceber diferenças a partir desta visualização.
Para entender melhor as relações entre as variáveis,vamos aplicar uma análise de correlação avaliando cada caso separadamento com base na proporção de comentários.
dados %>% ggplot( aes(x=PDI , y=comentaram_prop)) +
geom_point() +
scale_y_continuous(name = "Proporção de Comentários")+
scale_x_continuous(name = "Power Distance Index(PDI)")+
geom_smooth(method='lm', formula= y~x, se = FALSE)
Para evitar interferência de outliers, vamos limitar o escopo da análise de correlação para valores de PDI menor ou igual a 100 e a proporção de comentários para valores inferiores a 0.4, então:
dados.filter1 = dados %>% filter(PDI <=100 & comentaram_prop <=0.4)
corrPDI = dados.filter1 %>% summarise(
pearson = cor(PDI,comentaram_prop,method ="pearson"),
spearman = cor(PDI,comentaram_prop,method ="spearman"),
kendall = cor(PDI,comentaram_prop, method = "kendall")
)
corrPDI
## # A tibble: 1 x 3
## pearson spearman kendall
## <dbl> <dbl> <dbl>
## 1 -0.619 -0.625 -0.454
Com base nos coeficientes de correlação, podemos afirmar que há uma relação moderada inversa(negativa) entre a proporção de comentários de usuários de um país e o seu PDI, isto é, quanto menor a desigualdade social percebida em um país, maior é a proporção de comentários registrados.
2.Comentários por país X Acesso a Internet
Manipulando os dados disponíveis, encontramos 3 amostras que não possuem informações sobre a taxa de acesso a internet, sendo assim, vamos remove-las da análise.
dados %>% filter(is.na(Internet))
## # A tibble: 3 x 21
## site country PDI IDV MAS UAI usuarios responderam_prop
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Stac~ Taiwan 58 17 45 69 1341 0.398
## 2 Stac~ Venezu~ 81 12 73 76 686 0.453
## 3 Supe~ Taiwan 58 17 45 69 225 0.151
## # ... with 13 more variables: perguntaram_prop <dbl>, editaram_prop <dbl>,
## # comentaram_prop <dbl>, GNI <dbl>, Internet <dbl>, EPI <dbl>, geo <chr>,
## # four_regions <chr>, eight_regions <chr>, six_regions <chr>, Latitude <dbl>,
## # Longitude <dbl>, `World bank income group 2017` <chr>
dados.filter2 = dados %>% filter(!is.na(Internet))
dados.filter2 %>% ggplot( aes(x=Internet , y=comentaram_prop)) +
geom_point() +
scale_y_continuous(name = "Proporção de Comentários")+
scale_x_continuous(name = "Acesso a Internet")+
geom_smooth(method='lm', formula= y~x, se = FALSE)
Novamente, vamos considerar amostras com uma proporção de comentários maior que 0.4 como sendo outliers, então:
dados.filter2 = dados.filter2 %>% filter(comentaram_prop <=0.4)
corrInternet = dados.filter2 %>% summarise(
pearson = cor(Internet,comentaram_prop,method ="pearson"),
spearman = cor(Internet,comentaram_prop,method ="spearman"),
kendall = cor(Internet,comentaram_prop, method = "kendall")
)
corrInternet
## # A tibble: 1 x 3
## pearson spearman kendall
## <dbl> <dbl> <dbl>
## 1 0.635 0.633 0.475
Com isso, podemos afirmar que a proporção de comentários por país possui uma relação moderada com a taxa de acesso de Internet, ou seja, quanto mais acessível for a internet para uma população, maior a quantidade de comentários registrados.
dados %>% ggplot( aes(x=usuarios , y=comentaram_prop)) +
geom_point() +
scale_y_continuous(name = "Proporção de Comentários")+
scale_x_continuous(name = "Quantidade de Usuários")+
geom_smooth(method='lm', formula= y~x, se = FALSE)
Podemos ver claramente a presença de outliers na quantidade de usuários, sendo assim, vamos considerar amostras com uma quantidade de usuários menor que 7,5 mil usuários, e amostras com uma proporção de comentários menor que 0.4 como sendo outliers, então:
dados.filter3 = dados %>% filter(comentaram_prop <=0.4 & usuarios <=7500)
corrUser = dados.filter3 %>% summarise(
pearson = cor(usuarios,comentaram_prop,method ="pearson"),
spearman = cor(usuarios,comentaram_prop,method ="spearman"),
kendall = cor(usuarios,comentaram_prop, method = "kendall")
)
corrUser
## # A tibble: 1 x 3
## pearson spearman kendall
## <dbl> <dbl> <dbl>
## 1 0.196 0.226 0.154
Como os coeficientes de correlação estão todos próximos de zero, não podemos dizer que existe uma relação entre a quantidade de usuários de um país e a proporção de comentários registrados.
Em seguida, faça 5 visualizações que usem as mesmas variáveis e também pontos, mas que sejam menos eficazes que a que você escolheu acima.
1.Coordenada Polar: Adotar difenrentes coordenadas pode confundir o leitor
dados %>%
ggplot(aes(
x = PDI,
color = Internet,
y = comentaram_prop,
size = log10(usuarios)
)) +
geom_point() +
coord_polar()
df = dados %>% select(comentaram_prop,Internet,PDI,usuarios) %>% filter(!is.na(Internet))
df = df %>% mutate(usuarios = log10(usuarios))
ggpairs(df, title="Correlogram")
pca_res <- prcomp(df, scale. = TRUE)
autoplot(pca_res,loadings= TRUE, loadings.label = TRUE)
dados %>%
ggplot(aes(
x = PDI,
y = comentaram_prop,
color = Internet,
size = log10(usuarios)
)) +
geom_point(alpha = .6) +
facet_grid(site ~ ., scales = "free_y")
fig <- plot_ly(x = dados$PDI, y = dados$comentaram_prop, z = dados$Internet,marker = list(color = log10(dados$usuarios), colorscale ='Blues', showscale = TRUE,size =4))
fig <- fig %>% add_markers()
fig <- fig %>% layout(scene = list(xaxis = list(title = 'PDI'),
yaxis = list(title = 'Proporção Comentarios'),
zaxis = list(title = 'Acesso a Internet')),
annotations = list(
x = 1.13,
y = 1.05,
text = 'Usuários',
xref = 'paper',
yref = 'paper',
showarrow = FALSE
))
fig
## Warning: Ignoring 3 observations
Inclua o continente dos países (six_regions) na visualização.
df2 = dados %>% select(comentaram_prop,Internet,PDI,usuarios,six_regions) %>%
filter(!is.na(Internet)) %>% filter(!is.na(six_regions))
df2 %>%
ggplot(aes(
x = PDI,
y = comentaram_prop,
color = Internet,
size = log10(usuarios)
)) +
geom_point(alpha = .6)+
facet_wrap(. ~six_regions, ncol=3)